1. Field of the Invention
The present invention deals with computer software for the display of physical units reported by transducers, especially in automatically constructing unit names for human use from transducers complying with the IEEE 1451.2 standard.
2. Art Background
When a quantity is measured in one place and displayed in another, it is necessary to get the measurement accurately from the source to the destination. A measured quantity comprises a number and a unit; for example a particular measured distance comprises the number 3 and the unit meters. The process of representing numbers is well understood. The process of displaying units is not. Evolving instrumentation standards such as IEEE 1451.2 require that units measured and reported by transducers be represented by binary numbers corresponding to unscaled SI units (Le Systxc3xa8me International d""Unitxc3xa9s). Representation of units in the 1451.2 standard is unlike most unit representations. Rather than merely being a list of names and scale factors, or a pointer to a list of names, the 1451.2 unit is a vector of exponents of SI base units.
The IEEE 1451.2 standard is described in IEEE Std 1451.2xe2x80x941977 IEEE Standard for a Smart Transducer Interface for Sensors and Actuatorsxe2x80x94Transducer to Microprocessor Communications Protocols and Transducer Electronic Data Sheet (TEDS) Formats, published by the Institute of Electrical and Electronics Engineers, Inc., September 1998, incorporated herein by reference.
While the SI system defines a set of base units, in terms of which other units may be derived, these units, such as the meter for length and kilogram for mass, may not be easily readable or useable by humans in a particular situation. For example, while a pressure transducer reports its readings in SI units of kilograms/meter2, the users of the system may be accustomed to readings displayed as lb/in2. The problem here is not the simple problem of units conversion, converting for example between meters and furlongs, or between kilograms and troy ounces. The problem here is one of constructing unit names using user-defined units rather than SI units to more readily present information to human users.
The current state of the art deals with the naming problem as follows. In the simplest approach, given a table of base SI units and a target SI unit (not necessarily a base unit), the table is searched for the target. If it is present, the name is emitted. If the target is not present, a name is constructed using SI base unit names.
A slightly more robust approach makes use of a table containing both base and compound SI units. The table is searched, emitting unit names for base SI units and supplied SI compound units. For units not present in the table, names are expressed in terms of SI base units.
To this may be added a second table of user-defined units (not necessarily base units). Given a target, if it is matched exactly by a unit in this second table, that name is emitted. If the target is not found in this second table, processing continues as in the other approaches, expressing the name in terms of SI base units.
The above mentioned prior art methods can only express names for previously unseen units in terms of SI base units.
What is needed is a process which given a set of user-defined unit names, constructs unit names for a target unit in terms of those user-defined unit names, without having to anticipate all possible unit names or carry a dictionary of all possible unit names.
A method for constructing names from a set of user-defined unit names is disclosed. Given a target unit and a set of non-orthogonal user-defined units, one or more equivalent names for the target unit are generated through recursively searching the target name space, optimizing and pruning the search to find unit names of lowering magnitude until an appropriate result or results are achieved.